package domain.controllers.validators;

import domain.commands.RegistrarComando;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.springframework.validation.*;



public class RegistrarValidator implements Validator {

	public boolean supports(Class clazz) {
		
		return RegistrarComando.class.isAssignableFrom(clazz);
	}
	public void validate(Object comando, Errors errors) {
				ValidationUtils.rejectIfEmptyOrWhitespace(errors, "nombre", "nombre.vacio", null, "Introduzca un valor correcto para el nobre de usuario");
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "contrasena", "contrasena.vacio", null, "Introduzca un valor correcto para la contraseña");
		ValidationUtils.rejectIfEmptyOrWhitespace(errors, "email", "email.vacio", null, "Introduzca un valor correcto para el email");
                ValidationUtils.rejectIfEmptyOrWhitespace(errors, "dni", "dni.vacio", null, "Introduzca un valor correcto para el dni");
                
                RegistrarComando rc = (RegistrarComando) comando;
                String dni = rc.getDni();
                
                if(dni.length()!=8){
                    errors.rejectValue("dni", "dni.tamaño","Por favor untroduzca un dni correcto");
                }else{
                    
                     Pattern p = Pattern.compile("[a-zA-Z]");
                   Matcher m = p.matcher(dni);
                if(m.find()){
                   errors.rejectValue("dni", "dni.correcto","el dni es incorrecto,no introduzca la letra final solo los numeros");
                }
                    
                }

	}

}